package com.vincent.template.dto.biz;

import com.vincent.template.commons.constanst.EnumType;
import com.vincent.template.commons.validation.constraints.MatchEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Min;
import javax.validation.constraints.Null;

/**
 * @Author Vincent Wang
 * @Date 2020/10/19 13:46
 */
@ApiModel(value = "DepartmentDto", description = "部门")
public class DepartmentDto {

    /**
     * 部门编号
     */
    @ApiModelProperty(value = "部门编号", hidden = true)
    @Null
    private Long departmentNo;

    /**
     * 父级部门编号
     */
    @ApiModelProperty(value = "父级部门编号", required = true)
    @Min(value = -1)
    private Long parentNo;

    /**
     * 部门名称
     */
    @ApiModelProperty(value = "部门名称", required = true)
    @Length(max = 128)
    private String departmentName;

    /**
     * 部门名称
     */
    @ApiModelProperty(value = "部门全路径名称", hidden = true)
    @Null
    private String departmentFullName;

    /**
     * 部门类型
     */
    @ApiModelProperty(value = "部门类型", required = true)
    @MatchEnum(type = EnumType.DEPARTMENT_TYPE)
    private String departmentType;

    /**
     * 部门负责人员工ID
     */
    @ApiModelProperty(value = "部门负责人员工ID")
    @Length(max = 40)
    private String headStaffId;

    public Long getDepartmentNo() {
        return departmentNo;
    }

    public void setDepartmentNo(Long departmentNo) {
        this.departmentNo = departmentNo;
    }

    public Long getParentNo() {
        return parentNo;
    }

    public void setParentNo(Long parentNo) {
        this.parentNo = parentNo;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    public String getDepartmentFullName() {
        return departmentFullName;
    }

    public void setDepartmentFullName(String departmentFullName) {
        this.departmentFullName = departmentFullName;
    }

    public String getDepartmentType() {
        return departmentType;
    }

    public void setDepartmentType(String departmentType) {
        this.departmentType = departmentType;
    }

    public String getHeadStaffId() {
        return headStaffId;
    }

    public void setHeadStaffId(String headStaffId) {
        this.headStaffId = headStaffId;
    }
}
